Character recognition allows automatically recognizing an unknown character based on a trained recognition model with little or no human intervention. A number of character recognition algorithms have been developed and employed in real-world applications including, for example, optical character recognition applications for translating scanned images of handwritten, typewritten and/or printed documents.
Recent developments of mobile device technology open up a new opportunity for character recognition. Due to a small form factor of mobile devices, the mobile devices usually do not include a keyboard for user input. Even if a keyboard is provided by a mobile device, the keyboard tends to be very small and inconvenient to use, especially when a large amount of words or characters are needed to be input. Given this situation, character recognition has been considered as a plausible solution to this input problem. A user may input characters through a touch screen or a tablet of a mobile device and a recognition application of the mobile device may then recognize or translate the inputted characters based on a character recognition model. The use of character recognition not only saves the user from inputting the characters through a tiny keyboard, if any exists, but also reduces errors incurred because of mistakenly touching a wrong button on the keyboard due to a small size of the keyboard.
Although character recognition is welcome as a solution that is superior over a tiny keyboard, adopting character recognition in a mobile device is not without a problem. Generally, an accuracy of existing character recognition relies heavily on whether a character to be recognized is received in a predefined orientation, for example, in an upright position. The accuracy of the existing character recognition is sharply deteriorated as the character to be recognized deviates from the predefined orientation. In other words, the existing character recognition is not invariant to an orientation of a character to be recognized.